class NameGenerator {
    constructor() {
        // 一堆形容词
        this.adjs =
            "大小多少快慢好坏大小贫富贵贱贤愚聪笨东西南北高矮胖肥瘦美丑善恶强弱帅矬黑白";

        // 一堆连词
        this.conjs = "又且而尔并特更";

        // 随机店名= 一个随机形容词 + 一个随机连词 + 一个随机形容词 => 好又多
    }

    static instance = null;
    static getInstance() {
        if (!this.instance) {
            this.instance = new NameGenerator();
        }
        return this.instance;
    }
    
    // NameGenerator.getInstance()

    // 该工具不需要任何的天然属性，此处省略constructor,事实上会默认继承Object
    getRandom(a, b) {
        return a + parseInt(Math.random() * (b - a + 1));
    }

    /* 根据类型号1 2 3 获得一个随机店名 */
    getRandomShopname(type) {
        let name =
            // 随机取一个形容词
            this.adjs[this.getRandom(0, this.adjs.length - 1)] +
            // 随机取一个连词
            this.conjs[this.getRandom(0, this.conjs.length - 1)] +
            // 随机取一个形容词
            this.adjs[this.getRandom(0, this.adjs.length - 1)];

        // 根据类型不同 拼接一个后缀
        switch (type) {
            case "Restaurant":
                name += "大食堂";
                break;
            case "Supermarket":
                name += "大卖场";
                break;
            case "Hotel":
                name += "大酒店";
                break;
            default:
                name += "大商号";
                break;
        }
        return name;
    }
}
